<?php
class Rec_erDAO extends GenericDAO  {

	function __construct() {
		$this->tabela["alteracao"] = array(	"id" 	=> 59,
											"nome" 	=> strtolower(substr(get_class(), 0, -3)));
	
		$this->tabela["consulta"]  = array(	"id" 	=> 62,
											"nome" 	=> "vw_" . strtolower(substr(get_class(), 0, -3)));
	}
	
	public function consultarPK($vars) {
		foreach($vars as $campo => $valor) {
			$flds[] = "$campo = :$campo";
		}
		$where = "where " . implode(" and ", $flds);
		return $this->consultar($where, $vars);
	}

	public function redefinir($entes, $idos, $finalizarTransacao = true) {
		if (count($entes) == 1) {
			$pk["ente"] = $entes[0]["ente"];
		} else {
			$pk["ido"] = $idos[0]["ido"];
		}
		$this->excluirRegistro($pk, false);

		foreach ($entes as $ente) {
			foreach ($idos as $ido) {
				$reg["ente"] = $ente["ente"];
				$reg["ido"]  = $ido["ido"];
				$this->inserir($reg, false);
			}
		}

		if ($finalizarTransacao) {
			$this->commit();
		}
		return true;
	}
	
	public function inserir($reg, $finalizarTransacao) {
		$novo = $reg;
		do {
			try {
				$this->inserirRegistro($novo, false);
				$dao = new RecursoDAO();
				$recurso = $dao->consultarPK($novo["ido"]);
				$novo["ido"] = $recurso[0]["recurso"];
			} catch (Exception $e) {
			}
		} while (!is_null($novo["ido"]));
		
		$dependencias["ente"] = $reg["ido"]; 
		$reqs = $this->consultarPK($dependencias);
		if (!is_null($reqs)) {
			foreach($reqs as $req) {
				$novo["ido"] = $req["ido"];
				$this->inserir($novo, false);
			}
		}
		if ($finalizarTransacao) {
			$this->commit();
		}
	} 
}
?>